package com.yisu.auction.api.core.mapper;


import com.yisu.auction.api.domain.request.prizePackage.LatestAnnouncedRequest;
import com.yisu.auction.api.domain.request.prizePackage.MineAuctionListRequest;
import com.yisu.auction.api.domain.request.prizePackage.PreviousRecordRequest;
import com.yisu.auction.api.domain.request.prizePackage.PrizeDetailRequest;
import com.yisu.auction.api.domain.vo.goodsInfoPackageVos.LatestAnnouncedVo;
import com.yisu.auction.api.domain.vo.goodsInfoPackageVos.PreviousRecordVo;
import com.yisu.auction.api.domain.vo.goodsInfoPackageVos.PrizeVo;
import com.yisu.auction.ewf.entity.Prize;
import com.yisu.auction.ewf.entity.PrizeArchive;

import java.util.List;

public interface PrizeArchiveMapper {
    int insert(Prize record);

    PrizeArchive selectByPrimaryKey(Long id);

    int insertSelective(Prize record);

    int updateByPrimaryKeySelective(Prize record);

    /**
     * author: 赵杰
     * Business Description：通过竞品ID获取竞品详情
     * @param prizeDetailRequest 含竞品ID
     * @return
     */
    PrizeVo getPrizeDetailByPrizeId(PrizeDetailRequest prizeDetailRequest);

    /**
     * author: 赵杰
     * Business Description：通过竞品ID往期记录
     * @param previousRecordRequest 含prizeId
     * @return
     */
    List<PreviousRecordVo> getPreviousRecordListByPrizeId(PreviousRecordRequest previousRecordRequest);

    /**
     * author: 赵杰
     * Business Description：获取最新揭晓列表
     * @param latestAnnouncedRequest
     * @return
     */
    List<LatestAnnouncedVo> getLatestAnnouncedList(LatestAnnouncedRequest latestAnnouncedRequest);


    /**
     * author: 赵杰
     * Business Description：获取全部参与竞拍数据-扩展
     * @param mineAuctionListRequest
     * @return
     */
    List<PrizeVo> getAllMineAuctionList(MineAuctionListRequest mineAuctionListRequest);

    /**
     * author: 赵杰
     * Business Description：获取拍中的竞拍数据-扩展
     * @param mineAuctionListRequest
     * @return
     */
    List<PrizeVo> getWinningMineAuctionList(MineAuctionListRequest mineAuctionListRequest);

    /**
     * author: 赵杰
     * Business Description：获取未拍中的竞拍数据-扩展
     * @param mineAuctionListRequest
     * @return
     */
    List<PrizeVo> getLosingMineAuctionList(MineAuctionListRequest mineAuctionListRequest);

    /**
     * author:赵杰
     * Business Description:获取待签收的竞拍数据-扩展
     * @param mineAuctionListRequest
     * @return
     */
    List<PrizeVo> getWaitSignForMineAuctionList(MineAuctionListRequest mineAuctionListRequest);

    /**
     * author:赵杰
     * Business Description:获取待晒单的竞拍数据-扩展
     * @param mineAuctionListRequest
     * @return
     */
    List<PrizeVo> getWaitShowOrderListMineAuctionList(MineAuctionListRequest mineAuctionListRequest);
}